misc
Class DomainGenerator

java.lang.Object
  extended by misc.DomainGenerator

public class DomainGenerator
extends java.lang.Object

The domain generator automatically generates domain given a requested value for opposition and bid distribution. The lower the opposition, the more win-win solutions are available. The lower the bid distribution, the more close bids are on average to the Pareto-frontier. Generating a domain can take a few seconds for small domains (< 5000 bids) and up to an hour for large domains (> 200.000 bids) depending on the requested configuration. Instructions on how to class can be found in the main method. Note that this class can be easily extended to include other metrics to which the generated domain must adhere.

Author:
Mark Hendrikx

Constructor Summary
DomainGenerator()
           
 
Method Summary
static void findDomain(Domain domain, UtilitySpace spaceA, UtilitySpace spaceB, java.lang.String logToDirA, java.lang.String logToDirB, Range opp, Range dist, boolean biasForHighOpp, boolean varyBoth)
          Method which keeps generating new domains until a domain satisfying the bounds on the opposition and bid distribution is found.
static void main(java.lang.String[] args)
          This method generates a utility space for a given domain.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DomainGenerator

public DomainGenerator()
Method Detail

main

public static void main(java.lang.String[] args)
                 throws java.lang.Exception
This method generates a utility space for a given domain. Please follow the numbered steps inside this method.

Parameters:
args - is ignored.
Throws:
java.lang.Exception - when something goes wrong when storing the new domain.

findDomain

public static void findDomain(Domain domain,
                              UtilitySpace spaceA,
                              UtilitySpace spaceB,
                              java.lang.String logToDirA,
                              java.lang.String logToDirB,
                              Range opp,
                              Range dist,
                              boolean biasForHighOpp,
                              boolean varyBoth)
                       throws java.lang.Exception
Method which keeps generating new domains until a domain satisfying the bounds on the opposition and bid distribution is found.

Parameters:
domain - for which the profile should be generated.
spaceA - preference profile of side A.
spaceB - preference profile of side B.
logToDirA - directory to log the new side A profile.
logToDirB - directory to log the new side B profile.
opp - range for opposition.
dist - range for bid distribution.
biasForHighOpp - bias search method to find domains with a high opposition faster.
varyBoth - if false then solely a new preference profile for the B side is created.
Throws:
java.lang.Exception - when something goes wrong when storing the new domain.